﻿using System;
using System.Collections.Generic;

namespace Sustainalytics.LongRunningTaskManager.Interface
{
    /// <summary>
    /// Task result factory.
    /// </summary>
    public interface ILongRunningTaskResultFactory
    {
        /// <summary>
        /// Get all registered task result types.
        /// </summary>
        /// <returns> Registered task result types. </returns>
        IEnumerable<Type> GetTaskResultTypes();

        /// <summary>
        /// Get Type associated to a specific task result type.
        /// </summary>
        /// <param name="taskResultType"> Task result type. </param>
        /// <returns> Type associated to a specific task result type. </returns>
        Type GetTaskResultType(LongRunningTaskResultTypeEnum taskResultType);
    }
}
